package com.example.kuake.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * 夸克网盘文件列表响应实体类
 */
@ApiModel(description = "夸克网盘文件列表响应")
public class QuarkFileListResponse {
    
    @ApiModelProperty(value = "响应状态", example = "200")
    private Integer status;
    
    @ApiModelProperty(value = "响应码", example = "0")
    private Integer code;
    
    @ApiModelProperty(value = "响应消息", example = "")
    private String message;
    
    @ApiModelProperty(value = "时间戳", example = "1757829582")
    private Long timestamp;
    
    @ApiModelProperty(value = "响应数据")
    private Data data;
    
    // 内部数据类
    public static class Data {
        @ApiModelProperty(value = "最近查看列表")
        private List<Object> lastViewList;
        
        @ApiModelProperty(value = "最近文件列表")
        private List<Object> recentFileList;
        
        @ApiModelProperty(value = "文件列表")
        private List<QuarkFile> list;
        
        @ApiModelProperty(value = "元数据")
        private Metadata metadata;
        
        // Getter和Setter方法
        public List<Object> getLastViewList() {
            return lastViewList;
        }
        
        public void setLastViewList(List<Object> lastViewList) {
            this.lastViewList = lastViewList;
        }
        
        public List<Object> getRecentFileList() {
            return recentFileList;
        }
        
        public void setRecentFileList(List<Object> recentFileList) {
            this.recentFileList = recentFileList;
        }
        
        public List<QuarkFile> getList() {
            return list;
        }
        
        public void setList(List<QuarkFile> list) {
            this.list = list;
        }
        
        public Metadata getMetadata() {
            return metadata;
        }
        
        public void setMetadata(Metadata metadata) {
            this.metadata = metadata;
        }
    }
    
    // 元数据类
    public static class Metadata {
        @ApiModelProperty(value = "每页大小", example = "50")
        private Integer size;
        
        @ApiModelProperty(value = "请求ID", example = "981od4-2752ddc92c96cb")
        private String reqId;
        
        @ApiModelProperty(value = "当前页码", example = "1")
        private Integer page;
        
        @ApiModelProperty(value = "当前页数量", example = "11")
        private Integer count;
        
        @ApiModelProperty(value = "总数量", example = "11")
        private Integer total;
        
        // Getter和Setter方法
        public Integer getSize() {
            return size;
        }
        
        public void setSize(Integer size) {
            this.size = size;
        }
        
        public String getReqId() {
            return reqId;
        }
        
        public void setReqId(String reqId) {
            this.reqId = reqId;
        }
        
        public Integer getPage() {
            return page;
        }
        
        public void setPage(Integer page) {
            this.page = page;
        }
        
        public Integer getCount() {
            return count;
        }
        
        public void setCount(Integer count) {
            this.count = count;
        }
        
        public Integer getTotal() {
            return total;
        }
        
        public void setTotal(Integer total) {
            this.total = total;
        }
    }

    // 构造函数
    public QuarkFileListResponse() {}

    public QuarkFileListResponse(Integer status, Integer code, String message, Data data) {
        this.status = status;
        this.code = code;
        this.message = message;
        this.data = data;
    }

    // Getter和Setter方法
    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }

    public Data getData() {
        return data;
    }

    public void setData(Data data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "QuarkFileListResponse{" +
                "status=" + status +
                ", code=" + code +
                ", message='" + message + '\'' +
                ", timestamp=" + timestamp +
                ", data=" + data +
                '}';
    }
}